Python 安装

        因为Python是跨平台的,它可以运行在Windows、Mac和各种Linux/Unix系统上。在Windows上写Python程序,放到Linux上也是能够运行的。

        要开始学习Python编程,首先就得把Python安装到电脑里。安装后,你会得到Python解释器(就是负责运行Python程序的),一个命令行交互环境,还有一个简单的集成开发环境。

2.x还是3.x

        目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的,因为现在Python正在朝着3.x版本进化,在进化过程中,大量的针对2.x版本的代码要修改后才能运行,所以,目前有许多第三方库还暂时无法在3.x上使用。为了保证程序能用到大量的第三方库,需要使用2.x版本。

        python目前最流行的版本就是python 2.7,因为centos 7系统默认安装的是python 2.7的版本;mac系统中也是2.7。因此先学习python 2.7版本,即使以后python 3.0流行,只要学习它们的差异,很快就可以投入到工作中。

在Mac上安装Python

        如果在使用Mac,系统是OS X 10.8或者最新的10.9 Mavericks,恭喜你,系统自带了Python 2.7。如果系统版本低于10.8,请自行备份系统并免费升级到最新的10.9,就可以获得Python 2.7。

image

        查看系统版本的办法是点击左上角的苹果图标,选择“关于本机”:

在Linux上安装Python

        CentOS 6.5 系统自带 Python 2.6

1
2
[root@192 ~]# rpm -q python
python-2.6.6-51.el6.x86_64

        CentOS 7.0 系统自带 PYthon 2.7

1
2
[root@localhost ~]# rpm -q python
python-2.7.5-48.el7.x86_64

        在 linux 系统下,直接输入 python 就可以进入 pyhton 的命令行模式,使用 exit() 退出

1
2
3
4
5
6
[root@192 ~]# python
Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print 'hello world'
hello world

        原生的 python 带的命令行不是很多,也不能使用 tab 键命令补齐。这时候需要安装一个 python shell 模块,叫 “ipython” 的模块,就可以进行命令补齐。

        如果计算机可以上网,那么可以直接使用网络安装,使用 命令 pip ,如果没有这个命令,需要先安装,需要先安装 epel 扩展源

1
[root@192 ~]# yum install -y python-pip

        安装完成后再安装 ipython

1
[root@192 ~]# pip install ipython

        因为 CentOS 6.5 自带的 python 为 2.6 版本比较底,直接 pip 安装有可能高版本会报错,需要在包名后边加上低版本版本号,来安装较低版本。

1
[root@192 ~]# pip install ipython==1.2.1

        查看安装模块命令 pip list

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@192 ~]# pip list
You are using pip version 7.1.0, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
argparse (1.2.1)
distribute (0.6.10)
iniparse (0.3.1)
ipython (1.2.1)
pip (7.1.0)
pycurl (7.19.0)
pygpgme (0.1)
pyxdg (0.18)
setuptools (0.6rc11)
urlgrabber (3.9.1)
yum-metadata-parser (1.1.2)

        安装完成,直接输入 ipython 就可以进如 python 命令行模式的,这个模式下可以使用 tab 键进行命令补齐了,退出使用命令 exit

1
2
3
4
5
6
7
8
9
10
11
[root@192 ~]# ipython
Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22)
Type "copyright", "credits" or "license" for more information.
IPython 1.2.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]:

        安装 ipython 报错

image

        使用命令

1
[root@localhost ~]# yum install -y python-devel

        如果机器不能上网,那么需要在可以上网的机器上下载安装包拷贝到机器上安装。下载地址

        然后拷贝到机器解压

image

        解压以后有个 setup.py 脚本

image

        使用命令 setup.py install 安装,安装完成使用 pip list 查看是否安装成功。

windows 安装 Python

        首先在 Python官网 下载 python 安装包

image

        下载安装以后,c 盘下会有一个 python 文件夹

image

image

        然后把 python 路径加入 windows 的环境变量

image

image

image

image

        进入 cmd 命令行模式,输入 python 就可以进入 python 命令行模式

image

Python 解释器

        当我们编写Python代码时,我们得到的是一个包含Python代码的以 .py 为扩展名的文本文件。要运行代码,就需要Python解释器去执行 .py 文件。

        由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。

CPython

        当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

        CPython是使用最广的Python解释器。

IPython

        IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

        CPython用 >>> 作为提示符,而IPython用 In [序号]: 作为提示符。

PyPy

        PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

        绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点

Jython

        Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

IronPython

        IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

小结

        Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。